package com.ruoyi.act.module.service;

import com.github.pagehelper.PageInfo;
import com.ruoyi.act.module.domain.ActModel;
import org.activiti.engine.repository.Model;

import javax.servlet.http.HttpServletResponse;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.util.List;

/**
 * 流程模型
 *
 * @author hcj
 */
public interface IModelService {

    byte[] getEditorSource(String modelId);

    /**
     * 获取model模型信息
     *
     * @param modelId
     * @return
     */
    Model get(String modelId);

    /**
     * 创建模型实例
     *
     * @param actModel
     * @return
     */
    Model saveModel(ActModel actModel);

    List<Model> findList(ActModel actModel);

    /**
     * 模型分页列表
     *
     * @param actModel
     * @return
     */
    PageInfo<Model> findPge(ActModel actModel);

    /**
     * 获取模型文件
     * 返回文件流
     *
     * @param modelId
     */
    ByteArrayInputStream getModelEditorSource(String modelId, HttpServletResponse response) throws IOException;

    /**
     * 删除流程实例id
     *
     * @param modelId
     */
    void deleteModel(String modelId);
}
